import request from './request'

/**
 * 文章管理相关API
 */
export const articleApi = {
  /**
   * 获取文章列表
   * @param {Object} data - 查询参数
   * @param {number} data.page - 页码
   * @param {number} data.per_page - 每页数量
   * @returns {Promise} 文章列表
   */
  getList(data) {
    return request({
      url: '/api/admin/articles',
      method: 'POST',
      data
    })
  },

  /**
   * 创建H5文章
   * @param {Object} data - H5文章数据
   * @param {string} data.title - 文章标题
   * @param {string} data.description - 文章描述
   * @param {string} data.h5_url - H5链接
   * @param {string} data.status - 文章状态
   * @param {boolean} data.is_featured - 是否推荐
   * @param {boolean} data.is_active - 是否激活
   * @returns {Promise} 创建结果
   */
  createH5(data) {
    return request({
      url: '/api/admin/articles/h5',
      method: 'POST',
      data
    })
  },

  /**
   * 创建自定义文章
   * @param {FormData} formData - 包含文章信息和文件的表单数据
   * @returns {Promise} 创建结果
   */
  createCustom(formData) {
    return request({
      url: '/api/admin/articles/custom',
      method: 'POST',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  },

  /**
   * 获取文章详情
   * @param {number} articleId - 文章ID
   * @returns {Promise} 文章详情
   */
  getDetail(articleId) {
    return request({
      url: `/api/admin/articles/${articleId}`,
      method: 'POST',
      data: { articleId }
    })
  },

  /**
   * 更新文章
   * @param {number} articleId - 文章ID
   * @param {Object} data - 更新数据
   * @param {string} data.title - 文章标题
   * @param {string} data.description - 文章描述
   * @param {string} data.status - 文章状态
   * @returns {Promise} 更新结果
   */
  update(articleId, data) {
    return request({
      url: `/api/admin/articles/update/${articleId}`,
      method: 'POST',
      data
    })
  },

  /**
   * 发布文章
   * @param {number} articleId - 文章ID
   * @returns {Promise} 发布结果
   */
  publish(articleId) {
    return request({
      url: `/api/admin/articles/${articleId}/publish`,
      method: 'POST',
      data: { articleId }
    })
  },

  /**
   * 下架文章
   * @param {number} articleId - 文章ID
   * @returns {Promise} 下架结果
   */
  unpublish(articleId) {
    return request({
      url: `/api/admin/articles/${articleId}/unpublish`,
      method: 'POST',
      data: { articleId }
    })
  },

  /**
   * 删除文章
   * @param {number} articleId - 文章ID
   * @returns {Promise} 删除结果
   */
  delete(articleId) {
    return request({
      url: `/api/admin/articles/delete/${articleId}`,
      method: 'POST',
      data: { articleId }
    })
  },

  /**
   * 批量操作文章
   * @param {Object} data - 批量操作数据
   * @param {number[]} data.article_ids - 文章ID数组
   * @param {string} data.action - 操作类型
   * @returns {Promise} 批量操作结果
   */
  batchAction(data) {
    return request({
      url: '/api/admin/articles/batch-action',
      method: 'POST',
      data
    })
  },

  /**
   * 上传文章图片
   * @param {FormData} formData - 包含图片文件的表单数据
   * @returns {Promise} 上传结果
   */
  uploadImage(formData) {
    return request({
      url: '/api/admin/articles/upload-image',
      method: 'POST',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  }
}

export default articleApi